package com.sys.SysSales.domain;

import java.math.BigDecimal;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sys.common.annotation.Excel;
import com.sys.common.core.domain.BaseEntity;

/**
 * 订单主表对象 sys_sales_orders
 * 
 * @author ruoyi
 * @date 2025-09-26
 */
@Data
public class SysSalesOrders extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long orderId;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderNumber;

    /** 客户信息ID */
    @Excel(name = "客户信息ID")
    private Long customerId;

    /** 订单总金额 */
    @Excel(name = "订单总金额")
    private BigDecimal totalAmount;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private String status;

    /** 收货地址 */
    @Excel(name = "收货地址")
    private String shippingAddress;

    /** 期望发货日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "期望发货日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expectedDeliveryDate;

    /** 实际发货日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际发货日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualDeliveryDate;

    /** 取消原因 */
    @Excel(name = "取消原因")
    private String canceledReason;

    /** 取消操作人（sys_user.user_id） */
    @Excel(name = "取消操作人", readConverterExp = "s=ys_user.user_id")
    private Long canceledBy;

    /** 创建人（sys_user.user_id） */
    @Excel(name = "创建人", readConverterExp = "s=ys_user.user_id")
    private Long createdBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /** 订单明细表信息 */
    private List<SysSalesOrderDetails> sysSalesOrderDetailsList;

    /*客户信息*/
    /** 客户编号 */
    @Excel(name = "客户编号")
    private String customerNumber;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String name;

    /** 客户类型 */
    @Excel(name = "客户类型")
    private String type;

    /** 联系人姓名 */
    @Excel(name = "联系人姓名")
    private String contactPerson;

    /** 联系人职位 */
    @Excel(name = "联系人职位")
    private String position;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String phone;


    /** 省份 */
    @Excel(name = "省份")
    private String province;

    /** 城市 */
    @Excel(name = "城市")
    private String city;

    /** 区县 */
    @Excel(name = "区县")
    private String district;

    /** 详细地址 */
    @Excel(name = "详细地址")
    private String address;

    /** 用户账号 */
    @Excel(name = "用户账号")
    private String userName;

    /** 用户昵称 */
    @Excel(name = "用户昵称")
    private String nickName;

    // 客户信息（新增/修改）
    private String customerName;
    private String customerType;
    private String customerPhone;
    private String customerAddress;

    // 创建人信息
    private String createdUserName;
    private String createdNickName;

    // 取消人信息
    private String canceledUserName;
    private String canceledNickName;
//    public void setOrderId(Long orderId)
//    {
//        this.orderId = orderId;
//    }
//
//    public Long getOrderId()
//    {
//        return orderId;
//    }
//
//    public void setOrderNumber(String orderNumber)
//    {
//        this.orderNumber = orderNumber;
//    }
//
//    public String getOrderNumber()
//    {
//        return orderNumber;
//    }
//
//    public void setCustomerId(Long customerId)
//    {
//        this.customerId = customerId;
//    }
//
//    public Long getCustomerId()
//    {
//        return customerId;
//    }
//
//    public void setTotalAmount(BigDecimal totalAmount)
//    {
//        this.totalAmount = totalAmount;
//    }
//
//    public BigDecimal getTotalAmount()
//    {
//        return totalAmount;
//    }
//
//    public void setStatus(String status)
//    {
//        this.status = status;
//    }
//
//    public String getStatus()
//    {
//        return status;
//    }
//
//    public void setShippingAddress(String shippingAddress)
//    {
//        this.shippingAddress = shippingAddress;
//    }
//
//    public String getShippingAddress()
//    {
//        return shippingAddress;
//    }
//
//    public void setExpectedDeliveryDate(Date expectedDeliveryDate)
//    {
//        this.expectedDeliveryDate = expectedDeliveryDate;
//    }
//
//    public Date getExpectedDeliveryDate()
//    {
//        return expectedDeliveryDate;
//    }
//
//    public void setActualDeliveryDate(Date actualDeliveryDate)
//    {
//        this.actualDeliveryDate = actualDeliveryDate;
//    }
//
//    public Date getActualDeliveryDate()
//    {
//        return actualDeliveryDate;
//    }
//
//    public void setCanceledReason(String canceledReason)
//    {
//        this.canceledReason = canceledReason;
//    }
//
//    public String getCanceledReason()
//    {
//        return canceledReason;
//    }
//
//    public void setCanceledBy(Long canceledBy)
//    {
//        this.canceledBy = canceledBy;
//    }
//
//    public Long getCanceledBy()
//    {
//        return canceledBy;
//    }
//
//    public void setCreatedBy(Long createdBy)
//    {
//        this.createdBy = createdBy;
//    }
//
//    public Long getCreatedBy()
//    {
//        return createdBy;
//    }
//
//    public void setCreatedAt(Date createdAt)
//    {
//        this.createdAt = createdAt;
//    }
//
//    public Date getCreatedAt()
//    {
//        return createdAt;
//    }
//
//    public void setUpdatedAt(Date updatedAt)
//    {
//        this.updatedAt = updatedAt;
//    }
//
//    public Date getUpdatedAt()
//    {
//        return updatedAt;
//    }
//
//    public List<SysSalesOrderDetails> getSysSalesOrderDetailsList()
//    {
//        return sysSalesOrderDetailsList;
//    }
//
//    public void setSysSalesOrderDetailsList(List<SysSalesOrderDetails> sysSalesOrderDetailsList)
//    {
//        this.sysSalesOrderDetailsList = sysSalesOrderDetailsList;
//    }
//
//    @Override
//    public String toString() {
//        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
//            .append("orderId", getOrderId())
//            .append("orderNumber", getOrderNumber())
//            .append("customerId", getCustomerId())
//            .append("totalAmount", getTotalAmount())
//            .append("status", getStatus())
//            .append("shippingAddress", getShippingAddress())
//            .append("expectedDeliveryDate", getExpectedDeliveryDate())
//            .append("actualDeliveryDate", getActualDeliveryDate())
//            .append("canceledReason", getCanceledReason())
//            .append("canceledBy", getCanceledBy())
//            .append("createdBy", getCreatedBy())
//            .append("createdAt", getCreatedAt())
//            .append("updatedAt", getUpdatedAt())
//            .append("sysSalesOrderDetailsList", getSysSalesOrderDetailsList())
//            .toString();
//    }
}
